import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;

public class Login {
   
	private String firstName;
	private String lastName;
	private String password;
	
	private String email;
    private int mailBoxCapacity = 500;
    private int defaultPasswordLength = 10;
    private String alternateEmail;
    private String companySuffix = "cowin.gov.in";
	
    public void Email(String name, String last) {
    	this.firstName = name;
    	this.lastName = last;
    	System.out.println("VACCINATION REGISTRATION: \n**************************");
    	Scanner s = new Scanner(System.in);
    	System.out.print("Enter Your FirstName: ");
    	this.firstName = s.nextLine();
    	System.out.print("Enter Your LastName: ");
    	this.lastName= s.nextLine();
    	
    	//Combine Elements to generate email
    	email = firstName.toLowerCase() + "." + lastName.toLowerCase() + "@" + companySuffix;
        System.out.println("Generated Email is: " + email);	
        
      //Call a Method that returns a random password.
    	this.password = randomPassword(defaultPasswordLength);
    	System.out.println("Gnerated Passsword is: " + this.password);
    	
    	try {
			
			//Class.forName(com.mysql.jdbc.Driver);
			
			Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
		    PreparedStatement ps = conn.prepareStatement("INSERT INTO vaccine_login_info(first_name,last_name,email_id,password) VALUES (?,?,?,?)");
			ps.setString(1, firstName);
			ps.setString(2, lastName);
			ps.setString(3, email);
			ps.setString(4, this.password);
			int x = ps.executeUpdate();
			if(x > 0) {
				System.out.println("\nRegistration Done Sucessfully.");
			}
			else {
				System.out.println("Registration FAILED.");
			}
		}
		catch(Exception e1) {
			System.out.println(e1);
		}
    	
    	
    }
    
       
    //Generate a Random Password
    private String randomPassword(int length) {
    	String passwordSet = "ABCDEFGHIJKLMNOPQRST)!@#$%^&*(!@$%%";
    	char[] password = new char[length];
    	for(int i=0;i<length;i++) {
    		int rand = (int) (Math.random() * passwordSet.length());
    		password[i] = passwordSet.charAt(rand);
    	}
    	return new String(password);
    }
    //Set the mail box capacity
    public void setMailBoxCapacity(int capacity) {
    	this.mailBoxCapacity = capacity;
    }
    //Set the alternate email
    public void setAlternateEmail(String altMail) {
    	this.alternateEmail = altMail;
    }
    //Change the password
    public void changePassword(String password) {
    	this.password = password;
    }
    
    public int getMailBoxcapacity(){
    	return mailBoxCapacity;
    }
    public String getAlternateEmail() {
    	return alternateEmail;
    }
    public String getChangedPassword() {
    	return password;
    }
    
    public String showInfo() {
    	return "\nDisplay Name: " + firstName + " " + lastName +
    			"\nLogin Email: " + email + "\nPassword: " + this.password + 
    			"\nMailbox Capacity: " + mailBoxCapacity + "mb";
    }
    
    public void ageValidation() {
    	Scanner age = new Scanner(System.in);
    	System.out.println("\nEnter Your Age: ");
    	int a = age.nextInt();
    	
    	if(a>=18) {
    		System.out.println("You are Eligible For the Vaccine!");
    	}
    	else
    		System.out.println("xx--Not Eligible--xx");
    }
	
}
